-
Notifications
You must be signed in to change notification settings - Fork 9
Add an option to use ensemble DA increments in the analysis postprocessing #1219
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds support for using ensemble DA (Data Assimilation) increments in the analysis postprocessing application, enabling more flexible ensemble update workflows. The changes maintain backward compatibility with existing configurations.
Key changes:
- Enhanced the ensemble postprocessing application to optionally read and apply ensemble DA increments
- Added support for using oops::Inflation classes (Multiplicative, RTPS, RTPP) to inflate analysis increments
- Made recentering optional - the application can now run with just DA increments, just recentering, or both
- Updated logging to distinguish between background and analysis ensemble statistics
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/mains/AnalysisPostproc.h | Main implementation: added analysis increment reading, inflation with oops::Inflation classes, optional recentering, and improved logging |
| test/testinput/ensanpproc_ensda.yml | New test configuration demonstrating ensemble DA increments with inflation and recentering |
| test/testinput/letkf.yml | Added option to save posterior ensemble increments for use in postprocessing |
| test/testref/ensanpproc_ensda.test | New test reference file for ensemble DA increments test case |
| test/testref/ensanpproc.test | Updated reference with improved logging labels and new statistics output |
| test/CMakeLists.txt | Added new test files and appropriate test dependencies |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
guillaumevernieres
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
|
@Dooruk do you have time to review in near future? No worries if not, this is backward compatible and won't affect your runs, I can look for another reviewer if you're unavailable for now. |
Dooruk
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry @shlyaeva, looks good. I am a bit swamped ATM to test it on my end but please add someone else if you need a more substantial review.
|
@Dooruk no worries, and thank you for the approval! it's very low risk since no one uses it yet, so I'll merge. |
Description
This expands the ensemble postprocessing app to optionally use ensemble DA increments. Changes are backward-compatible, no changes needed to the existing yamls.
The application now does the below (new functions are marked in bold):
a. if available (
analysis incrementssection specified in yaml, reads analysis ensemble increments. ifensemble inflationis specified, createsoops::Inflation(currently available options: multiplicative, RTPS and RTPP) and inflates the analysis increments ensemble. Updates ensemble mean (background mean + mean analysis increment). Computes and optionally saves resulting analysis ensemble stats. The IAU increments are assigned to equal analysis increments (after inflation).b. otherwise, as before, optionally inflates background perturbations (if
ensemble inflationis specified). As before, only multiplicative inflation is available in this case. The IAU increments are assigned to equal inflated perturbations - original perturbations, or zero if there's no inflationrecentering stateis specified in yaml, previously this was required).increment postprocessing/analysis postprocessingare specified in yaml.This allows to run this app for:
Issue(s) addressed
Resolves #1198